Fully persistent B-trees
نویسندگان
چکیده
We present I/O-efficient fully persistent B-Trees that support range searches at any version in O(logB n + t/B) I/Os and updates at any version in O(logB n + log2 B) amortized I/Os, using space O(m/B) disk blocks. By n we denote the number of elements in the accessed version, by m the total number of updates, by t the size of the query’s output, and by B the disk block size. The result improves the previous fully persistent B-Trees of Lanka and Mays by a factor of O(logB m) for the range query complexity and O(logB n) for the update complexity. To achieve the result, we first present a new B-Tree implementation that supports searches and updates in O(logB n) I/Os, using O(n/B) blocks of space. Moreover, every update makes in the worst case a constant number of modifications to the data structure. We make these B-Trees fully persistent using an I/O-efficient method for full persistence that is inspired by the nodesplitting method of Driscoll et al. The method we present is interesting in its own right and can be applied to any external memory pointer based data structure with maximum in-degree din bounded by a constant and out-degree bounded by O(B), where every node occupies a constant number of blocks on disk. The I/O-overhead per modification to the ephemeral structure is O(din log2 B) amortized I/Os, and the space overhead is O(din/B) amortized blocks. Access to a field of an ephemeral block is supported in O(log2 din) worst case I/Os.
منابع مشابه
Persistent B+-Trees in Non-Volatile Main Memory
Computer systems in the near future are expected to have NonVolatile Main Memory (NVMM), enabled by a new generation of Non-Volatile Memory (NVM) technologies, such as Phase Change Memory (PCM), STT-MRAM, and Memristor. The non-volatility property has the promise to persist in-memory data structures for instantaneous failure recovery. However, realizing such promise requires a careful design to...
متن کاملEndurable Transient Inconsistency in Byte-Addressable Persistent B+-Tree
With the emergence of byte-addressable persistent memory (PM), a cache line, instead of a page, is expected to be the unit of data transfer between volatile and nonvolatile devices, but the failure-atomicity of write operations is guaranteed in the granularity of 8 bytes rather than cache lines. This granularity mismatch problem has generated interest in redesigning block-based data structures ...
متن کاملPersistently Cached B-Trees
This paper presents an approach to enhancing B-tree indexing performance by using a replication technique called persistent caching. A notable feature of the approach is its compatibility with ordinary B-trees; it exploits only the otherwise unused area of each B-tree page, and the basic behavior of B-trees need not be changed. This paper evaluates the performance of persistently cached B-trees...
متن کاملDynamic Data Structures: Orthogonal Range Queries and Update Efficiency
English) We study dynamic data structures for different variants of orthogonal range reporting query problems. In particular, we consider (1) the planar orthogonal 3-sided range reporting problem: given a set of points in the plane, report the points that lie within a given 3-sided rectangle with one unbounded side, (2) the planar orthogonal range maxima reporting problem: given a set of points...
متن کاملOn the Average Height of b-Balanced Ordered Trees
An ordered tree with height h is b-balanced if all its leaves have a level l with h − b <= l <= h, where at least one leaf has a level equal to h − b. For large n, we shall compute asymptotic equivalents to the number of all b-balanced ordered trees with n nodes and of all such trees with height h. Furthermore, assuming that all b-balanced ordered trees with n nodes are equally likely, we shall...
متن کامل